今天要介紹的是安全滲透測試中的模組,為什麼在滲透測試中需要模組呢?Python內建了許多針對常見網路通訊協定的模組,這些模組用來封裝網路通訊協定的層次。托這些模組的福,上百行的程式現在只需要幾行程式就能夠完成,而接下來我要講的應該算是使用頻率最高的模組檔案了-Socket模組。
Socket模組是對TCP/IP的封裝與應用,而TCP/IP是傳輸層協定,主要負責資料如何在網路中傳輸。Socket也稱作通訊端,是可以任意使用的(TCP/IP是網路中的規則,無法更改)。可以拿來實現不同虛擬機器或不同電腦的資料交換,應用程式通常透過「通訊端」發送獲回應網路請求。
在Python中提供了兩個基本的Socket模組,分別是服務端及用戶端,當建立一個服務端Socket後,這個Socket會在通訊埠等待連接,等用戶端Socket存取後完成連接就可以互動了。
產生一個實體的Socket
產生實體Socket的格式為:
socket(family, type, [protocol])
family:預設值為socket.AF_INET,通常使用這個預設值即可。
type:用來表示Socket的類型,這邊共有三個-SOCK_STREAM(TCP類型)、SOCK_DGRAM(UDP類型)、SOCK_RAW(原始類型)
protocal:可設定的參數,通常設定值為0,由系統自動選擇。
初始化
初始化TCP類型的Socket:s=socket.socket()
初始化UDP類型的Socket:s=socket.socket(socket.AF_ , socket.SOCK_DGRAM)
Socket常用的函數
撰寫一個簡單的服務端與用戶端
Socket服務端
Socket用戶端
可以看到這部分我的服務端與用戶端還無法連接,可能與我先前設定的IP位址有關聯,明天我會先將Socket連接成功再接著下方的主題。